home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-04-29 | 1.8 KB | 60 lines | [TEXT/ZBAS] |
- 'GraphicUtils.incl by Robert Hommel
- '© Copyright 1994
- 'All rights granted for any use whatsoever
-
- 'Disclaimer: I've tested these routines quite thoroughly on my Mac
- 'LC running System 7.01 and FB 1.02c. I make no promises or warranties
- 'of any kind.
- '*********************************************************************
-
- COMPILE 0, _MacsBugLabels _caseInsensitive _STRResource
- INCLUDE FILE _aplIncl
- DEFSTR LONG
- DEFINT A-Z
- '
- '
- '
- LOCAL MODE
- LOCAL FN FastOffsetRect(@T&,X,Y)
- T&.Top% = T&.Top% + Y
- T&.Left% = T&.Left% + X
- T&.Bottom% = T&.Bottom% + Y
- T&.Right% = T&.Right% + X
- END FN
- '
- '------------------ OFF SCREEN GRAPHICS UTILS -----------------------
- '
- LOCAL MODE 'returns an offscreen GWorld
- DIM T,L,B,R 'Requires 32-bit color QuickDraw
- LOCAL FN GetOffScrnGWorld(T;8)
- CALL LOCALTOGLOBAL(T)
- CALL LOCALTOGLOBAL(B)
- QDErr = FN NEWGWORLD(offPort&,0,T,0,0,0) 'offPort contains offScreen port
- LONG IF QDErr 'check for error
- LONG IF offPort&
- CALL DISPOSEGWORLD(offPort&) 'dump GWORLD block if necessary
- offPort&=0
- END IF
- END IF
- END FN = offPort&
- '
- '
- '
- LOCAL MODE 'copy bitmap from offscreen to window
- LOCAL FN CopyOffScreenBits(offPort&,wndPort&,Src&,Dst&,copyMode,maskRgn&)
- Locked = FN LOCKPIXELS(offPort&.portpixmap&)
- CALL COPYBITS(#offPort&+2,#wndPort&+2,#Src&,#Dst&,copyMode,maskRgn&)
- CALL UNLOCKPIXELS(offPort&.portpixmap&)
- END FN
- '
- '---------------------- GENERAL GRAPHIC UTILS -----------------------
- '
- LOCAL MODE
- DIM ST,SL,SB,SR
- DIM BT,BL,BB,BR
- LOCAL FN CenterRect(@smallRectPtr&,@bigRectPtr&)
- ST;8 = smallRectPtr& : BT;8 = bigRectPtr&
- CALL OFFSETRECT(#smallRectPtr&,BL+((BR-BL)-(SR-SL))/2-SL,BT+((BB-BT)-(SB-ST))/2-ST)
- END FN
-
-